Termination w.r.t. Q of the following Term Rewriting System could be proven:

Q restricted rewrite system:
The TRS R consists of the following rules:

0(#) → #
+(#, x) → x
+(x, #) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(0(x), j(y)) → j(+(x, y))
+(j(x), 0(y)) → j(+(x, y))
+(1(x), 1(y)) → j(+(+(x, y), 1(#)))
+(j(x), j(y)) → 1(+(+(x, y), j(#)))
+(1(x), j(y)) → 0(+(x, y))
+(j(x), 1(y)) → 0(+(x, y))
+(+(x, y), z) → +(x, +(y, z))
opp(#) → #
opp(0(x)) → 0(opp(x))
opp(1(x)) → j(opp(x))
opp(j(x)) → 1(opp(x))
-(x, y) → +(x, opp(y))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
*(j(x), y) → -(0(*(x, y)), y)
*(*(x, y), z) → *(x, *(y, z))
*(+(x, y), z) → +(*(x, z), *(y, z))
*(x, +(y, z)) → +(*(x, y), *(x, z))

Q is empty.


QTRS
  ↳ DependencyPairsProof

Q restricted rewrite system:
The TRS R consists of the following rules:

0(#) → #
+(#, x) → x
+(x, #) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(0(x), j(y)) → j(+(x, y))
+(j(x), 0(y)) → j(+(x, y))
+(1(x), 1(y)) → j(+(+(x, y), 1(#)))
+(j(x), j(y)) → 1(+(+(x, y), j(#)))
+(1(x), j(y)) → 0(+(x, y))
+(j(x), 1(y)) → 0(+(x, y))
+(+(x, y), z) → +(x, +(y, z))
opp(#) → #
opp(0(x)) → 0(opp(x))
opp(1(x)) → j(opp(x))
opp(j(x)) → 1(opp(x))
-(x, y) → +(x, opp(y))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
*(j(x), y) → -(0(*(x, y)), y)
*(*(x, y), z) → *(x, *(y, z))
*(+(x, y), z) → +(*(x, z), *(y, z))
*(x, +(y, z)) → +(*(x, y), *(x, z))

Q is empty.

Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:

*1(x, +(y, z)) → *1(x, y)
+1(0(x), 0(y)) → 01(+(x, y))
*1(+(x, y), z) → *1(x, z)
*1(j(x), y) → *1(x, y)
+1(j(x), 0(y)) → +1(x, y)
+1(0(x), j(y)) → +1(x, y)
*1(0(x), y) → 01(*(x, y))
+1(1(x), j(y)) → +1(x, y)
+1(j(x), 1(y)) → +1(x, y)
+1(1(x), 1(y)) → +1(x, y)
OPP(j(x)) → OPP(x)
*1(1(x), y) → +1(0(*(x, y)), y)
+1(j(x), j(y)) → +1(x, y)
*1(x, +(y, z)) → *1(x, z)
*1(1(x), y) → 01(*(x, y))
+1(1(x), 1(y)) → +1(+(x, y), 1(#))
*1(+(x, y), z) → *1(y, z)
-1(x, y) → +1(x, opp(y))
+1(j(x), 1(y)) → 01(+(x, y))
+1(1(x), j(y)) → 01(+(x, y))
*1(0(x), y) → *1(x, y)
OPP(0(x)) → 01(opp(x))
OPP(0(x)) → OPP(x)
+1(+(x, y), z) → +1(y, z)
OPP(1(x)) → OPP(x)
*1(j(x), y) → -1(0(*(x, y)), y)
*1(x, +(y, z)) → +1(*(x, y), *(x, z))
+1(0(x), 0(y)) → +1(x, y)
+1(1(x), 0(y)) → +1(x, y)
+1(0(x), 1(y)) → +1(x, y)
-1(x, y) → OPP(y)
*1(*(x, y), z) → *1(y, z)
*1(+(x, y), z) → +1(*(x, z), *(y, z))
+1(+(x, y), z) → +1(x, +(y, z))
*1(*(x, y), z) → *1(x, *(y, z))
+1(j(x), j(y)) → +1(+(x, y), j(#))
*1(j(x), y) → 01(*(x, y))
*1(1(x), y) → *1(x, y)

The TRS R consists of the following rules:

0(#) → #
+(#, x) → x
+(x, #) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(0(x), j(y)) → j(+(x, y))
+(j(x), 0(y)) → j(+(x, y))
+(1(x), 1(y)) → j(+(+(x, y), 1(#)))
+(j(x), j(y)) → 1(+(+(x, y), j(#)))
+(1(x), j(y)) → 0(+(x, y))
+(j(x), 1(y)) → 0(+(x, y))
+(+(x, y), z) → +(x, +(y, z))
opp(#) → #
opp(0(x)) → 0(opp(x))
opp(1(x)) → j(opp(x))
opp(j(x)) → 1(opp(x))
-(x, y) → +(x, opp(y))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
*(j(x), y) → -(0(*(x, y)), y)
*(*(x, y), z) → *(x, *(y, z))
*(+(x, y), z) → +(*(x, z), *(y, z))
*(x, +(y, z)) → +(*(x, y), *(x, z))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

↳ QTRS
  ↳ DependencyPairsProof
QDP
      ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

*1(x, +(y, z)) → *1(x, y)
+1(0(x), 0(y)) → 01(+(x, y))
*1(+(x, y), z) → *1(x, z)
*1(j(x), y) → *1(x, y)
+1(j(x), 0(y)) → +1(x, y)
+1(0(x), j(y)) → +1(x, y)
*1(0(x), y) → 01(*(x, y))
+1(1(x), j(y)) → +1(x, y)
+1(j(x), 1(y)) → +1(x, y)
+1(1(x), 1(y)) → +1(x, y)
OPP(j(x)) → OPP(x)
*1(1(x), y) → +1(0(*(x, y)), y)
+1(j(x), j(y)) → +1(x, y)
*1(x, +(y, z)) → *1(x, z)
*1(1(x), y) → 01(*(x, y))
+1(1(x), 1(y)) → +1(+(x, y), 1(#))
*1(+(x, y), z) → *1(y, z)
-1(x, y) → +1(x, opp(y))
+1(j(x), 1(y)) → 01(+(x, y))
+1(1(x), j(y)) → 01(+(x, y))
*1(0(x), y) → *1(x, y)
OPP(0(x)) → 01(opp(x))
OPP(0(x)) → OPP(x)
+1(+(x, y), z) → +1(y, z)
OPP(1(x)) → OPP(x)
*1(j(x), y) → -1(0(*(x, y)), y)
*1(x, +(y, z)) → +1(*(x, y), *(x, z))
+1(0(x), 0(y)) → +1(x, y)
+1(1(x), 0(y)) → +1(x, y)
+1(0(x), 1(y)) → +1(x, y)
-1(x, y) → OPP(y)
*1(*(x, y), z) → *1(y, z)
*1(+(x, y), z) → +1(*(x, z), *(y, z))
+1(+(x, y), z) → +1(x, +(y, z))
*1(*(x, y), z) → *1(x, *(y, z))
+1(j(x), j(y)) → +1(+(x, y), j(#))
*1(j(x), y) → 01(*(x, y))
*1(1(x), y) → *1(x, y)

The TRS R consists of the following rules:

0(#) → #
+(#, x) → x
+(x, #) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(0(x), j(y)) → j(+(x, y))
+(j(x), 0(y)) → j(+(x, y))
+(1(x), 1(y)) → j(+(+(x, y), 1(#)))
+(j(x), j(y)) → 1(+(+(x, y), j(#)))
+(1(x), j(y)) → 0(+(x, y))
+(j(x), 1(y)) → 0(+(x, y))
+(+(x, y), z) → +(x, +(y, z))
opp(#) → #
opp(0(x)) → 0(opp(x))
opp(1(x)) → j(opp(x))
opp(j(x)) → 1(opp(x))
-(x, y) → +(x, opp(y))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
*(j(x), y) → -(0(*(x, y)), y)
*(*(x, y), z) → *(x, *(y, z))
*(+(x, y), z) → +(*(x, z), *(y, z))
*(x, +(y, z)) → +(*(x, y), *(x, z))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 3 SCCs with 13 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
QDP
            ↳ UsableRulesProof
          ↳ QDP
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

OPP(0(x)) → OPP(x)
OPP(j(x)) → OPP(x)
OPP(1(x)) → OPP(x)

The TRS R consists of the following rules:

0(#) → #
+(#, x) → x
+(x, #) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(0(x), j(y)) → j(+(x, y))
+(j(x), 0(y)) → j(+(x, y))
+(1(x), 1(y)) → j(+(+(x, y), 1(#)))
+(j(x), j(y)) → 1(+(+(x, y), j(#)))
+(1(x), j(y)) → 0(+(x, y))
+(j(x), 1(y)) → 0(+(x, y))
+(+(x, y), z) → +(x, +(y, z))
opp(#) → #
opp(0(x)) → 0(opp(x))
opp(1(x)) → j(opp(x))
opp(j(x)) → 1(opp(x))
-(x, y) → +(x, opp(y))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
*(j(x), y) → -(0(*(x, y)), y)
*(*(x, y), z) → *(x, *(y, z))
*(+(x, y), z) → +(*(x, z), *(y, z))
*(x, +(y, z)) → +(*(x, y), *(x, z))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
            ↳ UsableRulesProof
QDP
                ↳ QDPSizeChangeProof
          ↳ QDP
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

OPP(0(x)) → OPP(x)
OPP(j(x)) → OPP(x)
OPP(1(x)) → OPP(x)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
QDP
            ↳ UsableRulesProof
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

+1(0(x), j(y)) → +1(x, y)
+1(j(x), 0(y)) → +1(x, y)
+1(1(x), j(y)) → +1(x, y)
+1(j(x), 1(y)) → +1(x, y)
+1(+(x, y), z) → +1(y, z)
+1(1(x), 1(y)) → +1(x, y)
+1(0(x), 0(y)) → +1(x, y)
+1(0(x), 1(y)) → +1(x, y)
+1(1(x), 0(y)) → +1(x, y)
+1(j(x), j(y)) → +1(x, y)
+1(+(x, y), z) → +1(x, +(y, z))
+1(1(x), 1(y)) → +1(+(x, y), 1(#))
+1(j(x), j(y)) → +1(+(x, y), j(#))

The TRS R consists of the following rules:

0(#) → #
+(#, x) → x
+(x, #) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(0(x), j(y)) → j(+(x, y))
+(j(x), 0(y)) → j(+(x, y))
+(1(x), 1(y)) → j(+(+(x, y), 1(#)))
+(j(x), j(y)) → 1(+(+(x, y), j(#)))
+(1(x), j(y)) → 0(+(x, y))
+(j(x), 1(y)) → 0(+(x, y))
+(+(x, y), z) → +(x, +(y, z))
opp(#) → #
opp(0(x)) → 0(opp(x))
opp(1(x)) → j(opp(x))
opp(j(x)) → 1(opp(x))
-(x, y) → +(x, opp(y))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
*(j(x), y) → -(0(*(x, y)), y)
*(*(x, y), z) → *(x, *(y, z))
*(+(x, y), z) → +(*(x, z), *(y, z))
*(x, +(y, z)) → +(*(x, y), *(x, z))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
QDP
                ↳ RuleRemovalProof
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

+1(0(x), j(y)) → +1(x, y)
+1(j(x), 0(y)) → +1(x, y)
+1(1(x), j(y)) → +1(x, y)
+1(j(x), 1(y)) → +1(x, y)
+1(+(x, y), z) → +1(y, z)
+1(1(x), 1(y)) → +1(x, y)
+1(0(x), 0(y)) → +1(x, y)
+1(0(x), 1(y)) → +1(x, y)
+1(1(x), 0(y)) → +1(x, y)
+1(j(x), j(y)) → +1(x, y)
+1(+(x, y), z) → +1(x, +(y, z))
+1(1(x), 1(y)) → +1(+(x, y), 1(#))
+1(j(x), j(y)) → +1(+(x, y), j(#))

The TRS R consists of the following rules:

+(#, x) → x
+(x, #) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(0(x), j(y)) → j(+(x, y))
+(j(x), 0(y)) → j(+(x, y))
+(1(x), 1(y)) → j(+(+(x, y), 1(#)))
+(j(x), j(y)) → 1(+(+(x, y), j(#)))
+(1(x), j(y)) → 0(+(x, y))
+(j(x), 1(y)) → 0(+(x, y))
+(+(x, y), z) → +(x, +(y, z))
0(#) → #

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [15] with the following polynomial ordering [25], at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

+1(0(x), j(y)) → +1(x, y)
+1(j(x), 0(y)) → +1(x, y)
+1(1(x), j(y)) → +1(x, y)
+1(j(x), 1(y)) → +1(x, y)
+1(1(x), 1(y)) → +1(x, y)
+1(0(x), 0(y)) → +1(x, y)
+1(0(x), 1(y)) → +1(x, y)
+1(1(x), 0(y)) → +1(x, y)
+1(j(x), j(y)) → +1(x, y)
+1(1(x), 1(y)) → +1(+(x, y), 1(#))
+1(j(x), j(y)) → +1(+(x, y), j(#))

Strictly oriented rules of the TRS R:

+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(0(x), j(y)) → j(+(x, y))
+(j(x), 0(y)) → j(+(x, y))
+(1(x), j(y)) → 0(+(x, y))
+(j(x), 1(y)) → 0(+(x, y))
0(#) → #

Used ordering: POLO with Polynomial interpretation [25]:

POL(#) = 0   
POL(+(x1, x2)) = x1 + x2   
POL(+1(x1, x2)) = 2·x1 + 2·x2   
POL(0(x1)) = 1 + x1   
POL(1(x1)) = 1 + x1   
POL(j(x1)) = 1 + x1   



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ RuleRemovalProof
QDP
                    ↳ QDPSizeChangeProof
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

+1(+(x, y), z) → +1(y, z)
+1(+(x, y), z) → +1(x, +(y, z))

The TRS R consists of the following rules:

+(#, x) → x
+(x, #) → x
+(1(x), 1(y)) → j(+(+(x, y), 1(#)))
+(j(x), j(y)) → 1(+(+(x, y), j(#)))
+(+(x, y), z) → +(x, +(y, z))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
QDP
            ↳ QDPSizeChangeProof

Q DP problem:
The TRS P consists of the following rules:

*1(x, +(y, z)) → *1(x, y)
*1(+(x, y), z) → *1(x, z)
*1(j(x), y) → *1(x, y)
*1(x, +(y, z)) → *1(x, z)
*1(*(x, y), z) → *1(y, z)
*1(*(x, y), z) → *1(x, *(y, z))
*1(+(x, y), z) → *1(y, z)
*1(0(x), y) → *1(x, y)
*1(1(x), y) → *1(x, y)

The TRS R consists of the following rules:

0(#) → #
+(#, x) → x
+(x, #) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(0(x), j(y)) → j(+(x, y))
+(j(x), 0(y)) → j(+(x, y))
+(1(x), 1(y)) → j(+(+(x, y), 1(#)))
+(j(x), j(y)) → 1(+(+(x, y), j(#)))
+(1(x), j(y)) → 0(+(x, y))
+(j(x), 1(y)) → 0(+(x, y))
+(+(x, y), z) → +(x, +(y, z))
opp(#) → #
opp(0(x)) → 0(opp(x))
opp(1(x)) → j(opp(x))
opp(j(x)) → 1(opp(x))
-(x, y) → +(x, opp(y))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
*(j(x), y) → -(0(*(x, y)), y)
*(*(x, y), z) → *(x, *(y, z))
*(+(x, y), z) → +(*(x, z), *(y, z))
*(x, +(y, z)) → +(*(x, y), *(x, z))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs: